#pragma once

#include "photon.h"

class ray
{
protected:
	point	origin;
	vector3	direction;
	point	destination;
	double	distance;
	bool	insideObject;

public:
	ray();
	ray(point ori, vector3 dir);
	ray(point ori, point dest);
	ray(point ori,vector3 dir, bool inside);
	ray(photon p);

	~ray();

	inline point ray::getOrigin(){return origin;}
	inline vector3 ray::getDirection(){return direction;}
	inline point ray::getDesrination(){return destination;}
	inline double ray::getDistance(){return distance;}
	inline bool ray::getInsideness(){return insideObject;}

	inline void ray::setOrigin(point _origin){origin = _origin;}
	inline void ray::setDirection(vector3 _direction){direction = _direction;}
	inline void ray::setDestination(point _destination){destination = _destination;}
	inline void ray::setDistance(double _distance){distance = _distance;}
	inline void ray::setInsideness(bool inside){insideObject = inside;}


};